Binary data storage cells can be in either of two states. Typically these states are characterized as “0” and “1”, “off” and “on”, “lo” and “hi”, or the like. Such storage cells may be fabricated in a cross-bar structure or other two-dimensional array of conductors where each cell is connected between a row conductor and a column conductor. In such an array, a given storage cell may be accessed by selecting the appropriate row and column conductors, for example by applying a voltage across the row conductor and the column conductor between which that given cell is connected. If the desired operation is to “write” a 0 or a 1 to the cell, the voltage is set to a value that will cause the cell to assume the desired state. If the desired operation is to “read” from the cell, the voltage is set to a value that will result in a flow of current through the cell, the magnitude of the current flow indicating the state of the cell.
Storage cells that can be in any of s different states, where s is an integer greater than two, are now being realized. Such storage cells, of which memristors and chalcogenide phase change memory (PCM) cells are examples, offer the prospect of greatly reducing the cost and space required for storing a given amount of data. These multi-state storage cells may be fabricated in cross-bar structures or otherwise connected in two-dimensional arrays and accessed in a similar way as binary storage cells.
Binary data can be encoded for storage in multi-state storage cells. For example, if a certain storage cell can assume any of four states, two binary bits can be encoded for storage in that cell by concatenating them to form a symbol. The symbol in turn can be expressed as any of the four states that can be stored in the four-state storage cell. The states correspond to values of a physical characteristic such as resistance. For example:
1st bit2nd bitSymbolStateResistance0000019,000 ohms0101116,000 ohms1010213,500 ohms1111312,000 ohmsWhen the state of the storage cell is read, that state is decoded by expressing it as a two-bit symbol, and from the symbol the individual bits are recovered.